home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / lang / SmallEiffel.lha / SmallEiffel / bin_c / compile_to_c48.c < prev    next >
C/C++ Source or Header  |  1998-12-22  |  49KB  |  2,297 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_c.h"
  9. /*No:IFTHENLIST.nb_errors*/
  10. /*No:IFTHENLIST.static_false*/
  11. /*No:IFTHENLIST.non_static*/
  12. /*No:IFTHENLIST.add_last*/
  13.  
  14.  
  15. T6 r227use_current(T227* C){
  16. T6 R=0;
  17. T2 _i=0;
  18. _i=1;
  19. while (!(((_i)>(((T228*)((C)->_list/*0*/))->_upper/*8*/))||(R))) {
  20. R=r226use_current((T226*)(r228item((T228*)((C)->_list/*0*/),_i)));
  21. _i=(_i)+(1);
  22. }
  23. return R;
  24. }
  25.  
  26.  
  27. T2 r227compile_to_c(T227* C){
  28. T2 R=0;
  29. T2 _i=0;
  30. T2 _previous=0;
  31. T2 _state=0;
  32. _i=1;
  33. while (!((_state)==(2))) {
  34. {int z1=_state;
  35.  
  36. if((0==z1)){
  37. /*[IF*/
  38. if((_i)>(((T228*)((C)->_list/*0*/))->_upper/*8*/)){
  39. _state=2;
  40. R=_previous;
  41. }
  42. else{
  43. _previous=r226compile_to_c((T226*)(r228item((T228*)((C)->_list/*0*/),_i)),0);
  44. {int z2=_previous;
  45.  
  46. if((22==z2)){
  47. _state=1;
  48. }
  49.  else 
  50. if((21==z2)){
  51. }
  52.  else {R=20;
  53. _state=2;
  54. }}
  55. }
  56. /*FI]*/
  57. }
  58.  else{/*[IF*/
  59. if((_i)>(((T228*)((C)->_list/*0*/))->_upper/*8*/)){
  60. _state=2;
  61. {int z2=_previous;
  62.  
  63. if((20==z2)){
  64. R=20;
  65. }
  66.  else{R=22;
  67. }}
  68. }
  69. else{
  70. _previous=r226compile_to_c((T226*)(r228item((T228*)((C)->_list/*0*/),_i)),1);
  71. {int z2=_previous;
  72.  
  73. if((22==z2)){
  74. }
  75.  else 
  76. if((21==z2)){
  77. }
  78.  else {_state=2;
  79. R=20;
  80. }}
  81. }
  82. /*FI]*/
  83. }}
  84. _i=(_i)+(1);
  85. }
  86. return R;
  87. }
  88.  
  89.  
  90. T0* r227to_runnable(T227* C,T0* a1){
  91. T0* R=NULL;
  92. T2 _i=0;
  93. /*[IF*/
  94. if(((C)->_current_type/*4*/)!=((void*)(NULL))){
  95. {T227*n=malloc(sizeof(*n));
  96. *n=M227;
  97. /*[IRF3.3make*/((((T227*)(n)))->_list)=(r228twin((T228*)((C)->_list/*0*/)));
  98. /*]*/
  99. R=(T0*)n;
  100. }
  101. R=r227to_runnable(((T227*)R),a1);
  102. }
  103. else{
  104. C->_current_type=a1;
  105. _i=1;
  106. while (!(((_i)>(((T228*)((C)->_list/*0*/))->_upper/*8*/))||((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)>(0)))) {
  107. /*[IRF3.6put*/{T228* C1=(T228*)((C)->_list/*0*/);
  108. T0* b1=r226to_runnable((T226*)(r228item((T228*)((C)->_list/*0*/),_i)),a1);
  109. T2 b2=_i;
  110. ((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
  111. }/*]*/
  112. _i=(_i)+(1);
  113. }
  114. R=(T0*)C;
  115. }
  116. /*FI]*/
  117. return R;
  118. }
  119. /*No:IFTHENLIST.current_type*/
  120.  
  121.  
  122. void r227collect_c_tmp(T227* C){
  123. T2 _i=0;
  124. _i=((T228*)((C)->_list/*0*/))->_upper/*8*/;
  125. while (!((_i)==(0))) {
  126. r226collect_c_tmp((T226*)(r228item((T228*)((C)->_list/*0*/),_i)));
  127. _i=(_i)-(1);
  128. }
  129. }
  130. /*No:IFTHENLIST.make*/
  131.  
  132.  
  133. void r227afd_check(T227* C){
  134. T2 _i=0;
  135. _i=((T228*)((C)->_list/*0*/))->_upper/*8*/;
  136. while (!((_i)==(0))) {
  137. r226afd_check((T226*)(r228item((T228*)((C)->_list/*0*/),_i)));
  138. _i=(_i)-(1);
  139. }
  140. }
  141. /*No:IFTHENLIST.list*/
  142. /*No:IFTHENLIST.static_true*/
  143.  
  144.  
  145. T2 r230static_value(T230* C){
  146. T2 R=0;
  147. R=X56static_value((C)->_expression/*4*/);
  148. return R;
  149. }
  150.  
  151.  
  152. void r230mapping_c_target(T230* C,T0* a1){
  153. X56mapping_c_target((C)->_expression/*4*/,a1);
  154. }
  155.  
  156.  
  157. T6 r230is_static(T230* C){
  158. T6 R=0;
  159. R=X56is_static((C)->_expression/*4*/);
  160. return R;
  161. }
  162.  
  163.  
  164. T6 r230can_be_dropped(T230* C){
  165. T6 R=0;
  166. R=X56can_be_dropped((C)->_expression/*4*/);
  167. return R;
  168. }
  169.  
  170.  
  171. T6 r230is_manifest_string(T230* C){
  172. T6 R=0;
  173. R=X56is_manifest_string((C)->_expression/*4*/);
  174. return R;
  175. }
  176.  
  177.  
  178. T0* r230start_position(T230* C){
  179. T0* R=NULL;
  180. R=X56start_position((C)->_expression/*4*/);
  181. return R;
  182. }
  183.  
  184.  
  185. T6 r230c_simple(T230* C){
  186. T6 R=0;
  187. R=X56c_simple((C)->_expression/*4*/);
  188. return R;
  189. }
  190.  
  191.  
  192. void r230c_declare_for_old(T230* C){
  193. X56c_declare_for_old((C)->_expression/*4*/);
  194. }
  195.  
  196.  
  197. T0* r230add_comment(T230* C,T0* a1){
  198. T0* R=NULL;
  199. /*[IF*/
  200. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
  201. R=(T0*)C;
  202. }
  203. else{
  204. {T230*n=malloc(sizeof(*n));
  205. *n=M230;
  206. r230make(n,(T0*)C,a1);
  207. R=(T0*)n;
  208. }
  209. }
  210. /*FI]*/
  211. return R;
  212. }
  213. /*No:EXPRESSION_WITH_COMMENT.expression*/
  214.  
  215.  
  216. T2 r230to_integer(T230* C){
  217. T2 R=0;
  218. r230error(r230start_position(C),((T0*)ms13_45846));
  219. return R;
  220. }
  221.  
  222.  
  223. T6 r230use_current(T230* C){
  224. T6 R=0;
  225. R=X56use_current((C)->_expression/*4*/);
  226. return R;
  227. }
  228.  
  229.  
  230. void r230dca_inline_argument(T230* C,T0* a1){
  231. X56dca_inline_argument((C)->_expression/*4*/,a1);
  232. }
  233.  
  234.  
  235. void r230compile_to_c(T230* C){
  236. X56compile_to_c((C)->_expression/*4*/);
  237. }
  238.  
  239.  
  240. T0* r230to_runnable(T230* C,T0* a1){
  241. T0* R=NULL;
  242. T0* _e=NULL;
  243. _e=X56to_runnable((C)->_expression/*4*/,a1);
  244. /*[IF*/
  245. if(((C)->_expression/*4*/)==((void*)(_e))){
  246. R=(T0*)C;
  247. }
  248. else{
  249. {T230*n=malloc(sizeof(*n));
  250. *n=M230;
  251. r230make(n,_e,(C)->_comment/*8*/);
  252. R=(T0*)n;
  253. }
  254. }
  255. /*FI]*/
  256. return R;
  257. }
  258.  
  259.  
  260. T2 r230isa_dca_inline_argument(T230* C){
  261. T2 R=0;
  262. R=X56isa_dca_inline_argument((C)->_expression/*4*/);
  263. return R;
  264. }
  265.  
  266.  
  267. void r230compile_to_c_old(T230* C){
  268. X56compile_to_c_old((C)->_expression/*4*/);
  269. }
  270.  
  271.  
  272. T6 r230is_pre_computable(T230* C){
  273. T6 R=0;
  274. R=X56is_pre_computable((C)->_expression/*4*/);
  275. return R;
  276. }
  277.  
  278.  
  279. void r230collect_c_tmp(T230* C){
  280. X56collect_c_tmp((C)->_expression/*4*/);
  281. }
  282. /*No:EXPRESSION_WITH_COMMENT.fz_iinaiv*/
  283.  
  284.  
  285. T0* r230result_type(T230* C){
  286. T0* R=NULL;
  287. R=X56result_type((C)->_expression/*4*/);
  288. return R;
  289. }
  290.  
  291.  
  292. void r230error(T0* a1,T0* a2){
  293. r21add_position(a1);
  294. r21error((T21*)(oBC12eh),a2);
  295. }
  296.  
  297.  
  298. void r230make(T230* C,T0* a1,T0* a2){
  299. C->_expression=a1;
  300. C->_comment=a2;
  301. }
  302.  
  303.  
  304. T6 r230is_current(T230* C){
  305. T6 R=0;
  306. R=X56is_current((C)->_expression/*4*/);
  307. return R;
  308. }
  309.  
  310.  
  311. void r230mapping_c_arg(T230* C,T0* a1){
  312. X56mapping_c_arg((C)->_expression/*4*/,a1);
  313. }
  314.  
  315.  
  316. T6 r230is_void(T230* C){
  317. T6 R=0;
  318. R=X56is_void((C)->_expression/*4*/);
  319. return R;
  320. }
  321. /*No:EXPRESSION_WITH_COMMENT.comment*/
  322.  
  323.  
  324. void r230afd_check(T230* C){
  325. X56afd_check((C)->_expression/*4*/);
  326. }
  327.  
  328.  
  329. T6 r230is_result(T230* C){
  330. T6 R=0;
  331. R=X56is_result((C)->_expression/*4*/);
  332. return R;
  333. }
  334.  
  335.  
  336. T2 r143static_value(T143* C){
  337. T2 R=0;
  338. /*[IF*/
  339. if(X54is_integer(X56result_type((C)->_target/*4*/))){
  340. /*[IF*/
  341. if(X56is_static((C)->_target/*4*/)){
  342. R=-(X56static_value((C)->_target/*4*/));
  343. }
  344. /*FI]*/
  345. }
  346. /*FI]*/
  347. return R;
  348. }
  349. /*No:CALL_PREFIX_MINUS.call_proc_call_c2c*/
  350. /*No:CALL_PREFIX_MINUS.feature_name*/
  351.  
  352.  
  353. void r143finalize(T143* C){
  354. T0* _rf=NULL;
  355. T0* _rc=NULL;
  356. _rf=(C)->_run_feature/*8*/;
  357. _rc=X54run_class(/*X51current_type*/((T0*)(((T324*)_rf))->_current_type/*4*/));
  358. C->_run_feature=r24dynamic((T24*)(r328first((T328*)((((T24*)_rc))->_running/*12*/))),_rf);
  359. }
  360.  
  361.  
  362. T6 r143is_static(T143* C){
  363. T6 R=0;
  364. /*[IF*/
  365. if(X54is_integer(X56result_type((C)->_target/*4*/))){
  366. /*[IF*/
  367. if(X56is_static((C)->_target/*4*/)){
  368. R=1;
  369. }
  370. /*FI]*/
  371. }
  372. /*FI]*/
  373. return R;
  374. }
  375. /*No:CALL_PREFIX_MINUS.is_manifest_string*/
  376.  
  377.  
  378. T0* r143start_position(T143* C){
  379. T0* R=NULL;
  380. R=((T142*)((C)->_feature_name/*12*/))->_start_position/*8*/;
  381. return R;
  382. }
  383. /*No:CALL_PREFIX_MINUS.c_simple*/
  384.  
  385.  
  386. T0* r143add_comment(T143* C,T0* a1){
  387. T0* R=NULL;
  388. /*[IF*/
  389. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
  390. R=(T0*)C;
  391. }
  392. else{
  393. {T230*n=malloc(sizeof(*n));
  394. *n=M230;
  395. r230make(n,(T0*)C,a1);
  396. R=(T0*)n;
  397. }
  398. }
  399. /*FI]*/
  400. return R;
  401. }
  402.  
  403.  
  404. T2 r143to_integer(T143* C){
  405. T2 R=0;
  406. T0* _rf1=NULL;
  407. _rf1=(C)->_run_feature/*8*/;
  408. if(NULL!=(_rf1))switch(((T0*)_rf1)->id) {
  409. case 376: 
  410. break;
  411. default:
  412. _rf1=NULL;
  413. };/*[IF*/
  414. if((_rf1)==((void*)(NULL))){
  415. r143error(r143start_position(C),((T0*)ms13_45846));
  416. }
  417. else{
  418. R=X56to_integer((((T376*)_rf1))->_value/*36*/);
  419. }
  420. /*FI]*/
  421. return R;
  422. }
  423.  
  424.  
  425. T6 r143use_current(T143* C){
  426. T6 R=0;
  427. /*[IF*/
  428. /*AF*//*AE*/
  429. /*FI]*/
  430. /*[IF*/
  431. if(R){
  432. }
  433.  else if(X56is_current((C)->_target/*4*/)){
  434. R=X51use_current((C)->_run_feature/*8*/);
  435. }
  436. else{
  437. R=X56use_current((C)->_target/*4*/);
  438. }
  439. /*FI]*/
  440. return R;
  441. }
  442.  
  443.  
  444. T0* r143to_runnable(T143* C,T0* a1){
  445. T0* R=NULL;
  446. T0* _rf=NULL;
  447. T0* _t=NULL;
  448. _t=r143runnable_expression((C)->_target/*4*/,a1);
  449. _rf=r143run_feature_for(C,_t,a1);
  450. /*[IF*/
  451. if(((C)->_run_feature/*8*/)==((void*)(NULL))){
  452. C->_target=_t;
  453. C->_run_feature=_rf;
  454. r143run_feature_match(C);
  455. R=(T0*)C;
  456. }
  457.  else if((_t)==((void*)((C)->_target/*4*/))){
  458. R=(T0*)C;
  459. }
  460. else{
  461. {T143*n=malloc(sizeof(*n));
  462. *n=M143;
  463. r143with(n,_t,(C)->_feature_name/*12*/,_rf);
  464. R=(T0*)n;
  465. }
  466. }
  467. /*FI]*/
  468. return R;
  469. }
  470.  
  471.  
  472. void r143compile_to_c_old(T143* C){
  473. X56compile_to_c_old((C)->_target/*4*/);
  474. /*[IF*/
  475. /*AF*//*AE*/
  476. /*FI]*/
  477. }
  478. /*No:CALL_PREFIX_MINUS.is_pre_computable*/
  479.  
  480.  
  481. void r143collect_c_tmp(T143* C){
  482. /*[IF*/
  483. if(((C)->_run_feature/*8*/)!=((void*)(NULL))){
  484. X51collect_c_tmp((C)->_run_feature/*8*/);
  485. }
  486. /*FI]*/
  487. X56collect_c_tmp((C)->_target/*4*/);
  488. /*[IF*/
  489. /*AF*//*AE*/
  490. /*FI]*/
  491. }
  492. /*No:CALL_PREFIX_MINUS.fz_iinaiv*/
  493.  
  494.  
  495. T0* r143result_type(T143* C){
  496. T0* R=NULL;
  497. R=X51result_type((C)->_run_feature/*8*/);
  498. /*[IF*/
  499. if(X54is_like_current(R)){
  500. R=/*X51current_type*/((T0*)((T324*)((C)->_run_feature/*8*/))->_current_type/*4*/);
  501. }
  502. /*FI]*/
  503. return R;
  504. }
  505. /*No:CALL_PREFIX_MINUS.run_feature*/
  506. /*No:CALL_PREFIX_MINUS.fz_07*/
  507. /*No:CALL_PREFIX_MINUS.arg_count*/
  508.  
  509.  
  510. void r143with(T143* C,T0* a1,T0* a2,T0* a3){
  511. C->_target=a1;
  512. C->_feature_name=a2;
  513. C->_run_feature=a3;
  514. r143run_feature_match(C);
  515. }
  516. /*No:CALL_PREFIX_MINUS.is_result*/
  517. /*No:CALL_PREFIX_MINUS.fatal_error*/
  518.  
  519.  
  520. void r143mapping_c_target(T143* C,T0* a1){
  521. T0* _actual_type=NULL;
  522. T6 _flag=0;
  523. _flag=r25call_invariant_start(a1);
  524. _actual_type=X54run_type(r143result_type(C));
  525. /*[IF*/
  526. if(X54is_reference(_actual_type)){
  527. /*[IF*/
  528. if(X54is_reference(a1)){
  529. X54mapping_cast(a1);
  530. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  531. T3 b1='\50';
  532. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  533. }/*]*/
  534. /*]*/
  535. r143compile_to_c(C);
  536. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  537. T3 b1='\51';
  538. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  539. }/*]*/
  540. /*]*/
  541. }
  542. else{
  543. X54to_expanded(_actual_type);
  544. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  545. T3 b1='\50';
  546. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  547. }/*]*/
  548. /*]*/
  549. r143compile_to_c(C);
  550. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  551. T3 b1='\51';
  552. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  553. }/*]*/
  554. /*]*/
  555. }
  556. /*FI]*/
  557. }
  558. else{
  559. /*[IF*/
  560. if(X54is_reference(a1)){
  561. X54to_reference(_actual_type);
  562. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  563. T3 b1='\50';
  564. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  565. }/*]*/
  566. /*]*/
  567. r143compile_to_c(C);
  568. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  569. T3 b1='\51';
  570. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  571. }/*]*/
  572. /*]*/
  573. }
  574. else{
  575. /*[IF*/
  576. if(X54need_c_struct(a1)){
  577. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  578. T3 b1='\46';
  579. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  580. }/*]*/
  581. /*]*/
  582. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  583. T3 b1='\50';
  584. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  585. }/*]*/
  586. /*]*/
  587. r143compile_to_c(C);
  588. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  589. T3 b1='\51';
  590. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  591. }/*]*/
  592. /*]*/
  593. }
  594. else{
  595. r143compile_to_c(C);
  596. }
  597. /*FI]*/
  598. }
  599. /*FI]*/
  600. }
  601. /*FI]*/
  602. /*[IF*/
  603. if(_flag){
  604. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T45* C1=(T45*)(oBC25out_c);
  605. T3 b1='\51';
  606. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  607. }/*]*/
  608. /*]*/
  609. }
  610. /*FI]*/
  611. }
  612. /*No:CALL_PREFIX_MINUS.us_minus*/
  613.  
  614.  
  615. void r143run_feature_match(T143* C){
  616. r143run_feature_has_result(C);
  617. /*[IF*/
  618. if((X51arg_count((C)->_run_feature/*8*/))>(0)){
  619. r21add_position(((T142*)((C)->_feature_name/*12*/))->_start_position/*8*/);
  620. r21add_position(X51start_position((C)->_run_feature/*8*/));
  621. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms141_50512);
  622. r21fatal_error((T21*)(oBC12eh),b1);
  623. }/*]*/
  624. }
  625. /*FI]*/
  626. }
  627. /*No:CALL_PREFIX_MINUS.arguments*/
  628.  
  629.  
  630. T0* r143runnable_expression(T0* a1,T0* a2){
  631. T0* R=NULL;
  632. R=X56to_runnable(a1,a2);
  633. /*[IF*/
  634. if((R)==((void*)(NULL))){
  635. r21add_position(X56start_position(a1));
  636. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms118_16515);
  637. r21fatal_error((T21*)(oBC12eh),b1);
  638. }/*]*/
  639. }
  640. /*FI]*/
  641. return R;
  642. }
  643.  
  644.  
  645. T6 r143can_be_dropped(T143* C){
  646. T6 R=0;
  647. /*[IF*/
  648. if(X56can_be_dropped((C)->_target/*4*/)){
  649. R=X51can_be_dropped((C)->_run_feature/*8*/);
  650. }
  651. /*FI]*/
  652. return R;
  653. }
  654.  
  655.  
  656. void r143c_declare_for_old(T143* C){
  657. X56c_declare_for_old((C)->_target/*4*/);
  658. /*[IF*/
  659. /*AF*//*AE*/
  660. /*FI]*/
  661. }
  662.  
  663.  
  664. void r143dca_inline_argument(T143* C,T0* a1){
  665. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  666. T3 b1='\55';
  667. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  668. }/*]*/
  669. /*]*/
  670. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  671. T3 b1='\50';
  672. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  673. }/*]*/
  674. /*]*/
  675. X56dca_inline_argument((C)->_target/*4*/,a1);
  676. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  677. T3 b1='\51';
  678. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  679. }/*]*/
  680. /*]*/
  681. }
  682.  
  683.  
  684. void r143compile_to_c(T143* C){
  685. /*[IF*/
  686. if((r43boost((T43*)(oBC12run_control)))&&(X54is_basic_eiffel_expanded(/*X51current_type*/((T0*)((T324*)((C)->_run_feature/*8*/))->_current_type/*4*/)))){
  687. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  688. T3 b1='\55';
  689. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  690. }/*]*/
  691. /*]*/
  692. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  693. T3 b1='\50';
  694. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  695. }/*]*/
  696. /*]*/
  697. X56compile_to_c((C)->_target/*4*/);
  698. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  699. T3 b1='\51';
  700. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  701. }/*]*/
  702. /*]*/
  703. }
  704. else{
  705. /*[IRF3.6call_proc_call_c2c*/{T143* C1=C;
  706. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  707. }/*]*/
  708. }
  709. /*FI]*/
  710. }
  711.  
  712.  
  713. T2 r143isa_dca_inline_argument(T143* C){
  714. T2 R=0;
  715. /*[IF*/
  716. if(X54is_integer(r143result_type(C))){
  717. R=X56isa_dca_inline_argument((C)->_target/*4*/);
  718. }
  719. /*FI]*/
  720. return R;
  721. }
  722.  
  723.  
  724. void r143run_feature_has_result(T143* C){
  725. /*[IF*/
  726. if((X51result_type((C)->_run_feature/*8*/))==((void*)(NULL))){
  727. r21add_position(X51start_position((C)->_run_feature/*8*/));
  728. r21add_position(((T142*)((C)->_feature_name/*12*/))->_start_position/*8*/);
  729. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms117_53650);
  730. r21fatal_error((T21*)(oBC12eh),b1);
  731. }/*]*/
  732. }
  733. /*FI]*/
  734. }
  735.  
  736.  
  737. T0* r143run_feature_for(T143* C,T0* a1,T0* a2){
  738. T0* R=NULL;
  739. T0* _rc=NULL;
  740. _rc=X54run_class(X56result_type(a1));
  741. R=r24get_rf(((T24*)_rc),a1,(C)->_feature_name/*12*/,a2);
  742. return R;
  743. }
  744. /*No:CALL_PREFIX_MINUS.target*/
  745.  
  746.  
  747. void r143error(T0* a1,T0* a2){
  748. r21add_position(a1);
  749. r21error((T21*)(oBC12eh),a2);
  750. }
  751.  
  752.  
  753. void r143make(T143* C,T0* a1,T0* a2){
  754. {T142*n=malloc(sizeof(*n));
  755. *n=M142;
  756. r142make(n,r143operator(),a1);
  757. C->_feature_name=(T0*)n;
  758. }
  759. C->_target=a2;
  760. }
  761. /*No:CALL_PREFIX_MINUS.is_current*/
  762.  
  763.  
  764. void r143mapping_c_arg(T143* C,T0* a1){
  765. T0* _actual_type=NULL;
  766. _actual_type=X54run_type(r143result_type(C));
  767. /*[IF*/
  768. if(X54is_reference(_actual_type)){
  769. /*[IF*/
  770. if(X54is_reference(a1)){
  771. r143compile_to_c(C);
  772. }
  773. else{
  774. X54to_expanded(_actual_type);
  775. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  776. T3 b1='\50';
  777. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  778. }/*]*/
  779. /*]*/
  780. r143compile_to_c(C);
  781. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  782. T3 b1='\51';
  783. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  784. }/*]*/
  785. /*]*/
  786. }
  787. /*FI]*/
  788. }
  789. else{
  790. /*[IF*/
  791. if(X54is_reference(a1)){
  792. X54to_reference(_actual_type);
  793. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  794. T3 b1='\50';
  795. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  796. }/*]*/
  797. /*]*/
  798. r143compile_to_c(C);
  799. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  800. T3 b1='\51';
  801. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  802. }/*]*/
  803. /*]*/
  804. }
  805. else{
  806. /*[IF*/
  807. if(X54need_c_struct(a1)){
  808. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  809. T3 b1='\46';
  810. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  811. }/*]*/
  812. /*]*/
  813. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  814. T3 b1='\50';
  815. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  816. }/*]*/
  817. /*]*/
  818. r143compile_to_c(C);
  819. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  820. T3 b1='\51';
  821. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  822. }/*]*/
  823. /*]*/
  824. }
  825. else{
  826. r143compile_to_c(C);
  827. }
  828. /*FI]*/
  829. }
  830. /*FI]*/
  831. }
  832. /*FI]*/
  833. }
  834. /*No:CALL_PREFIX_MINUS.is_void*/
  835.  
  836.  
  837. T0* r143operator(void){
  838. T0* R=NULL;
  839. R=((T0*)ms14_46);
  840. return R;
  841. }
  842.  
  843.  
  844. void r143afd_check(T143* C){
  845. T0* _running=NULL;
  846. T0* _rc=NULL;
  847. _rc=X54run_class(X56result_type((C)->_target/*4*/));
  848. _running=(((T24*)_rc))->_running/*12*/;
  849. /*[IF*/
  850. if((_running)==((void*)(NULL))){
  851. r21add_position(X56start_position((C)->_target/*4*/));
  852. /*[IRF3.6append*/{T0* b1=((T0*)ms118_181815);
  853. r7append((T7*)(oBC21explanation),b1);
  854. }/*]*/
  855. /*[IRF3.6append*/{T0* b1=X54run_time_mark((((T24*)_rc))->_current_type/*0*/);
  856. r7append((T7*)(oBC21explanation),b1);
  857. }/*]*/
  858. /*[IRF3.6append*/{T0* b1=((T0*)ms13_20094);
  859. r7append((T7*)(oBC21explanation),b1);
  860. }/*]*/
  861. r21print_as_warning((T21*)(oBC12eh));
  862. r24set_at_run_time(((T24*)_rc));
  863. }
  864.  else if((r328count(((T328*)_running)))>(1)){
  865. r331update((C)->_target/*4*/,(C)->_run_feature/*8*/);
  866. }
  867. /*FI]*/
  868. X56afd_check((C)->_target/*4*/);
  869. /*[IF*/
  870. /*AF*//*AE*/
  871. /*FI]*/
  872. }
  873.  
  874.  
  875. T0* r169type_boolean(void){
  876. if(fBC12type_boolean==0){
  877. fBC12type_boolean=1;
  878. {T264*n=malloc(sizeof(*n));
  879. *n=M264;
  880. r264make(n,NULL);
  881. oBC12type_boolean=(T0*)n;
  882. }
  883. }
  884. return oBC12type_boolean;}
  885. /*No:E_FALSE.static_value*/
  886. /*No:E_FALSE.mapping_c_target*/
  887. /*No:E_FALSE.is_static*/
  888. /*No:E_FALSE.can_be_dropped*/
  889. /*No:E_FALSE.is_manifest_string*/
  890. /*No:E_FALSE.start_position*/
  891. /*No:E_FALSE.c_simple*/
  892. /*No:E_FALSE.c_declare_for_old*/
  893.  
  894.  
  895. T0* r169add_comment(T169* C,T0* a1){
  896. T0* R=NULL;
  897. /*[IF*/
  898. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
  899. R=(T0*)C;
  900. }
  901. else{
  902. {T230*n=malloc(sizeof(*n));
  903. *n=M230;
  904. r230make(n,(T0*)C,a1);
  905. R=(T0*)n;
  906. }
  907. }
  908. /*FI]*/
  909. return R;
  910. }
  911. /*No:E_FALSE.to_integer*/
  912. /*No:E_FALSE.use_current*/
  913. /*No:E_FALSE.dca_inline_argument*/
  914. /*No:E_FALSE.compile_to_c*/
  915. /*No:E_FALSE.to_runnable*/
  916.  
  917.  
  918. T2 r169isa_dca_inline_argument(void){
  919. T2 R=0;
  920. /*[IF*/
  921. {/*AT*/R=-(1);
  922. }
  923. /*FI]*/
  924. return R;
  925. }
  926. /*No:E_FALSE.compile_to_c_old*/
  927. /*No:E_FALSE.is_pre_computable*/
  928. /*No:E_FALSE.collect_c_tmp*/
  929. /*No:E_FALSE.fz_iinaiv*/
  930. /*No:E_FALSE.result_type*/
  931.  
  932.  
  933. void r169error(T0* a1,T0* a2){
  934. r21add_position(a1);
  935. r21error((T21*)(oBC12eh),a2);
  936. }
  937. /*No:E_FALSE.make*/
  938. /*No:E_FALSE.is_current*/
  939. /*No:E_FALSE.is_void*/
  940.  
  941.  
  942. void r169mapping_c_arg(T0* a1){
  943. /*[IF*/
  944. if(X54is_reference(a1)){
  945. /*[IRF3.6to_reference*/{T264* C1=(T264*)(/*(IRF4.8result_type*/r169type_boolean()/*)*/);
  946. r25to_reference((T25*)(oBC12cpp),(T0*)C1,r264type_boolean_ref());
  947. }/*]*/
  948. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  949. T3 b1='\50';
  950. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  951. }/*]*/
  952. /*]*/
  953. /*[IRF3.2compile_to_c*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  954. T3 b1='0';
  955. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  956. }/*]*/
  957. /*]*/
  958. /*]*/
  959. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  960. T3 b1='\51';
  961. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  962. }/*]*/
  963. /*]*/
  964. }
  965. else{
  966. /*[IRF3.2compile_to_c*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  967. T3 b1='0';
  968. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  969. }/*]*/
  970. /*]*/
  971. /*]*/
  972. }
  973. /*FI]*/
  974. }
  975. /*No:E_FALSE.afd_check*/
  976. /*No:E_FALSE.is_result*/
  977. /*No:ARGUMENT_NAME2.static_value*/
  978. /*No:ARGUMENT_NAME2.is_static*/
  979. /*No:ARGUMENT_NAME2.is_manifest_string*/
  980. /*No:ARGUMENT_NAME2.start_position*/
  981.  
  982.  
  983. T0* r188to_string(T188* C){
  984. T0* R=NULL;
  985. R=((T190*)(/*(IRF4.6name*/r191item(((T191*)(((T187*)((C)->_formal_arg_list/*12*/))->_flat_list/*8*/)),(C)->_rank/*8*/)/*)*/))->_to_string/*8*/;
  986. return R;
  987. }
  988. /*No:ARGUMENT_NAME2.c_simple*/
  989.  
  990.  
  991. T0* r188add_comment(T188* C,T0* a1){
  992. T0* R=NULL;
  993. /*[IF*/
  994. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
  995. R=(T0*)C;
  996. }
  997. else{
  998. {T230*n=malloc(sizeof(*n));
  999. *n=M230;
  1000. r230make(n,(T0*)C,a1);
  1001. R=(T0*)n;
  1002. }
  1003. }
  1004. /*FI]*/
  1005. return R;
  1006. }
  1007.  
  1008.  
  1009. T2 r188to_integer(T188* C){
  1010. T2 R=0;
  1011. r188error((C)->_start_position/*4*/,((T0*)ms13_45846));
  1012. return R;
  1013. }
  1014. /*No:ARGUMENT_NAME2.rank*/
  1015. /*No:ARGUMENT_NAME2.use_current*/
  1016.  
  1017.  
  1018. T0* r188to_runnable(T188* C,T0* a1){
  1019. T0* R=NULL;
  1020. T0* _fal=NULL;
  1021. T0* _rf=NULL;
  1022. _rf=r22top_rf((T22*)(oBC12small_eiffel));
  1023. _fal=X51arguments(_rf);
  1024. /*[IF*/
  1025. if(((C)->_formal_arg_list/*12*/)==((void*)(_fal))){
  1026. R=(T0*)C;
  1027. }
  1028. else{
  1029. {T188*n=malloc(sizeof(*n));
  1030. *n=M188;
  1031. r188with(n,(T0*)C,_fal);
  1032. R=(T0*)n;
  1033. }
  1034. }
  1035. /*FI]*/
  1036. return R;
  1037. }
  1038. /*No:ARGUMENT_NAME2.compile_to_c_old*/
  1039. /*No:ARGUMENT_NAME2.is_pre_computable*/
  1040. /*No:ARGUMENT_NAME2.collect_c_tmp*/
  1041. /*No:ARGUMENT_NAME2.fz_iinaiv*/
  1042.  
  1043.  
  1044. T0* r188result_type(T188* C){
  1045. T0* R=NULL;
  1046. R=r187type((T187*)((C)->_formal_arg_list/*12*/),(C)->_rank/*8*/);
  1047. return R;
  1048. }
  1049.  
  1050.  
  1051. void r188with(T188* C,T0* a1,T0* a2){
  1052. *((T188*)(C))=*((T188*)(a1));
  1053. C->_formal_arg_list=a2;
  1054. }
  1055. /*No:ARGUMENT_NAME2.is_result*/
  1056.  
  1057.  
  1058. void r188mapping_c_target(T188* C,T0* a1){
  1059. T0* _rt=NULL;
  1060. T6 _flag=0;
  1061. _flag=r25call_invariant_start(a1);
  1062. _rt=X54run_type(r188result_type(C));
  1063. /*[IF*/
  1064. if(X54is_reference(_rt)){
  1065. /*[IF*/
  1066. if(X54is_reference(a1)){
  1067. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_510));
  1068. /*]*/
  1069. /*[IRF3.5put_integer*/r45put_integer(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),X54id(a1));
  1070. /*]*/
  1071. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_172));
  1072. /*]*/
  1073. r25print_argument((T25*)(oBC12cpp),(C)->_rank/*8*/);
  1074. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1075. T3 b1='\51';
  1076. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1077. }/*]*/
  1078. /*]*/
  1079. }
  1080. else{
  1081. r25print_argument((T25*)(oBC12cpp),(C)->_rank/*8*/);
  1082. }
  1083. /*FI]*/
  1084. }
  1085. else{
  1086. /*[IF*/
  1087. if(X54is_reference(a1)){
  1088. r25print_argument((T25*)(oBC12cpp),(C)->_rank/*8*/);
  1089. }
  1090. else{
  1091. r25print_argument((T25*)(oBC12cpp),(C)->_rank/*8*/);
  1092. }
  1093. /*FI]*/
  1094. }
  1095. /*FI]*/
  1096. /*[IF*/
  1097. if(_flag){
  1098. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T45* C1=(T45*)(oBC25out_c);
  1099. T3 b1='\51';
  1100. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1101. }/*]*/
  1102. /*]*/
  1103. }
  1104. /*FI]*/
  1105. }
  1106. /*No:ARGUMENT_NAME2.can_be_dropped*/
  1107. /*No:ARGUMENT_NAME2.c_declare_for_old*/
  1108. /*No:ARGUMENT_NAME2.dca_inline_argument*/
  1109. /*No:ARGUMENT_NAME2.fz_b7*/
  1110.  
  1111.  
  1112. void r188compile_to_c(T188* C){
  1113. /*[IF*/
  1114. if(X54is_user_expanded(r188result_type(C))){
  1115. /*[IF*/
  1116. if(X54is_dummy_expanded(r188result_type(C))){
  1117. }
  1118. else{
  1119. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1120. T3 b1='\52';
  1121. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1122. }/*]*/
  1123. /*]*/
  1124. }
  1125. /*FI]*/
  1126. }
  1127. /*FI]*/
  1128. r25print_argument((T25*)(oBC12cpp),(C)->_rank/*8*/);
  1129. }
  1130. /*No:ARGUMENT_NAME2.fz_b8*/
  1131. /*No:ARGUMENT_NAME2.isa_dca_inline_argument*/
  1132. /*No:ARGUMENT_NAME2.formal_arg_list*/
  1133.  
  1134.  
  1135. void r188refer_to(T188* C,T0* a1,T0* a2,T2 a3){
  1136. C->_start_position=a1;
  1137. C->_formal_arg_list=a2;
  1138. C->_rank=a3;
  1139. }
  1140.  
  1141.  
  1142. void r188error(T0* a1,T0* a2){
  1143. r21add_position(a1);
  1144. r21error((T21*)(oBC12eh),a2);
  1145. }
  1146. /*No:ARGUMENT_NAME2.is_current*/
  1147.  
  1148.  
  1149. void r188mapping_c_arg(T188* C,T0* a1){
  1150. T0* _rt=NULL;
  1151. _rt=X54run_type(r188result_type(C));
  1152. /*[IF*/
  1153. if(X54is_reference(_rt)){
  1154. /*[IF*/
  1155. if(X54is_reference(a1)){
  1156. r25print_argument((T25*)(oBC12cpp),(C)->_rank/*8*/);
  1157. }
  1158. else{
  1159. X54to_expanded(_rt);
  1160. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1161. T3 b1='\50';
  1162. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1163. }/*]*/
  1164. /*]*/
  1165. r25print_argument((T25*)(oBC12cpp),(C)->_rank/*8*/);
  1166. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1167. T3 b1='\51';
  1168. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1169. }/*]*/
  1170. /*]*/
  1171. }
  1172. /*FI]*/
  1173. }
  1174. else{
  1175. /*[IF*/
  1176. if(X54is_reference(a1)){
  1177. X54to_reference(_rt);
  1178. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1179. T3 b1='\50';
  1180. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1181. }/*]*/
  1182. /*]*/
  1183. /*[IF*/
  1184. if(X54is_user_expanded(_rt)){
  1185. /*[IF*/
  1186. if(!(X54is_dummy_expanded(_rt))){
  1187. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1188. T3 b1='\52';
  1189. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1190. }/*]*/
  1191. /*]*/
  1192. }
  1193. /*FI]*/
  1194. }
  1195. /*FI]*/
  1196. r25print_argument((T25*)(oBC12cpp),(C)->_rank/*8*/);
  1197. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1198. T3 b1='\51';
  1199. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1200. }/*]*/
  1201. /*]*/
  1202. }
  1203. else{
  1204. r25print_argument((T25*)(oBC12cpp),(C)->_rank/*8*/);
  1205. }
  1206. /*FI]*/
  1207. }
  1208. /*FI]*/
  1209. }
  1210. /*No:ARGUMENT_NAME2.is_void*/
  1211. /*No:ARGUMENT_NAME2.afd_check*/
  1212.  
  1213.  
  1214. T0* r225start_position(T225* C){
  1215. T0* R=NULL;
  1216. R=X161start_position((C)->_instruction/*4*/);
  1217. return R;
  1218. }
  1219. /*No:INSTRUCTION_WITH_COMMENT.add_comment*/
  1220.  
  1221.  
  1222. T6 r225use_current(T225* C){
  1223. T6 R=0;
  1224. R=X161use_current((C)->_instruction/*4*/);
  1225. return R;
  1226. }
  1227.  
  1228.  
  1229. void r225compile_to_c(T225* C){
  1230. X161compile_to_c((C)->_instruction/*4*/);
  1231. }
  1232.  
  1233.  
  1234. T0* r225to_runnable(T225* C,T0* a1){
  1235. T0* R=NULL;
  1236. T0* _ri=NULL;
  1237. _ri=X161to_runnable((C)->_instruction/*4*/,a1);
  1238. /*[IF*/
  1239. if((_ri)==((void*)(NULL))){
  1240. r225error(X161start_position((C)->_instruction/*4*/),((T0*)ms225_18416));
  1241. R=(T0*)C;
  1242. }
  1243.  else if((_ri)==((void*)((C)->_instruction/*4*/))){
  1244. R=(T0*)C;
  1245. }
  1246. else{
  1247. {T225*n=malloc(sizeof(*n));
  1248. *n=M225;
  1249. r225make(n,_ri,(C)->_comment/*8*/);
  1250. R=(T0*)n;
  1251. }
  1252. }
  1253. /*FI]*/
  1254. return R;
  1255. }
  1256.  
  1257.  
  1258. T6 r225is_pre_computable(T225* C){
  1259. T6 R=0;
  1260. R=X161is_pre_computable((C)->_instruction/*4*/);
  1261. return R;
  1262. }
  1263. /*No:INSTRUCTION_WITH_COMMENT.instruction*/
  1264.  
  1265.  
  1266. void r225collect_c_tmp(T225* C){
  1267. X161collect_c_tmp((C)->_instruction/*4*/);
  1268. }
  1269.  
  1270.  
  1271. void r225error(T0* a1,T0* a2){
  1272. r21add_position(a1);
  1273. r21error((T21*)(oBC12eh),a2);
  1274. }
  1275. /*No:INSTRUCTION_WITH_COMMENT.end_mark_comment*/
  1276.  
  1277.  
  1278. void r225make(T225* C,T0* a1,T0* a2){
  1279. C->_instruction=a1;
  1280. C->_comment=a2;
  1281. }
  1282. /*No:INSTRUCTION_WITH_COMMENT.comment*/
  1283.  
  1284.  
  1285. void r225afd_check(T225* C){
  1286. X161afd_check((C)->_instruction/*4*/);
  1287. }
  1288. /*No:IFTHENELSE.clear_current_type*/
  1289. /*No:IFTHENELSE.nb_errors*/
  1290. /*No:IFTHENELSE.static_false*/
  1291. /*No:IFTHENELSE.non_static*/
  1292. /*No:IFTHENELSE.fz_else*/
  1293. /*No:IFTHENELSE.start_position*/
  1294.  
  1295.  
  1296. T0* r222twin(T222* C){
  1297. T0* R=NULL;
  1298. R=malloc(sizeof(*C));
  1299. *((T222*)R)=*C;
  1300. return R;
  1301. }
  1302.  
  1303.  
  1304. T0* r222add_comment(T222* C,T0* a1){
  1305. T0* R=NULL;
  1306. /*[IF*/
  1307. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
  1308. R=(T0*)C;
  1309. }
  1310.  else {/*AT*//*[IF*/
  1311. if((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(1)){
  1312. R=(T0*)C;
  1313. }
  1314. else{
  1315. {T225*n=malloc(sizeof(*n));
  1316. *n=M225;
  1317. r225make(n,(T0*)C,a1);
  1318. R=(T0*)n;
  1319. }
  1320. }
  1321. /*FI]*/
  1322. }
  1323. /*FI]*/
  1324. return R;
  1325. }
  1326. /*No:IFTHENELSE.set_else_compound*/
  1327.  
  1328.  
  1329. T6 r222use_current(T222* C){
  1330. T6 R=0;
  1331. /*[IF*/
  1332. if(r227use_current((T227*)((C)->_ifthenlist/*8*/))){
  1333. R=1;
  1334. }
  1335.  else if(((C)->_else_compound/*12*/)!=((void*)(NULL))){
  1336. R=r216use_current((T216*)((C)->_else_compound/*12*/));
  1337. }
  1338. /*FI]*/
  1339. return R;
  1340. }
  1341.  
  1342.  
  1343. void r222add_if_then(T222* C,T0* a1,T0* a2){
  1344. T0* _ifthen=NULL;
  1345. {T226*n=malloc(sizeof(*n));
  1346. *n=M226;
  1347. r226make(n,a1,a2);
  1348. _ifthen=(T0*)n;
  1349. }
  1350. /*[IF*/
  1351. if(((C)->_ifthenlist/*8*/)==((void*)(NULL))){
  1352. {T227*n=malloc(sizeof(*n));
  1353. *n=M227;
  1354. /*[IRF3.3make*/((((T227*)(n)))->_list)=(se_ma228(1,
  1355. _ifthen));
  1356. /*]*/
  1357. C->_ifthenlist=(T0*)n;
  1358. }
  1359. }
  1360. else{
  1361. /*[IRF3.5add_last*/r228add_last(((T228*)(((T227*)((C)->_ifthenlist/*8*/))->_list/*0*/)),_ifthen);
  1362. /*]*/
  1363. }
  1364. /*FI]*/
  1365. }
  1366.  
  1367.  
  1368. void r222compile_to_c(T222* C){
  1369. T2 _static_value=0;
  1370. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms222_3344));
  1371. /*]*/
  1372. _static_value=r227compile_to_c((T227*)((C)->_ifthenlist/*8*/));
  1373. {int z1=_static_value;
  1374.  
  1375. if((21==z1)){
  1376. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms222_2450));
  1377. /*]*/
  1378. /*[IF*/
  1379. if(((C)->_else_compound/*12*/)!=((void*)(NULL))){
  1380. r216compile_to_c((T216*)((C)->_else_compound/*12*/));
  1381. }
  1382. /*FI]*/
  1383. }
  1384.  else 
  1385. if((20==z1)){
  1386. }
  1387.  else {/*[IF*/
  1388. if(((C)->_else_compound/*12*/)!=((void*)(NULL))){
  1389. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_1740));
  1390. /*]*/
  1391. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_272));
  1392. /*]*/
  1393. r216compile_to_c((T216*)((C)->_else_compound/*12*/));
  1394. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_276));
  1395. /*]*/
  1396. }
  1397. /*FI]*/
  1398. }}
  1399. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms222_3360));
  1400. /*]*/
  1401. }
  1402.  
  1403.  
  1404. T0* r222to_runnable(T222* C,T0* a1){
  1405. T0* R=NULL;
  1406. T0* _ec=NULL;
  1407. T0* _itl=NULL;
  1408. T2 _ne=0;
  1409. _ne=/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/;
  1410. /*[IF*/
  1411. if(((C)->_current_type/*16*/)==((void*)(NULL))){
  1412. C->_current_type=a1;
  1413. _itl=r227to_runnable((T227*)((C)->_ifthenlist/*8*/),a1);
  1414. /*[IF*/
  1415. if((_itl)==((void*)(NULL))){
  1416. }
  1417. else{
  1418. C->_ifthenlist=_itl;
  1419. }
  1420. /*FI]*/
  1421. /*[IF*/
  1422. if((((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)-(_ne))==(0))&&(((C)->_else_compound/*12*/)!=((void*)(NULL)))){
  1423. _ec=r216to_runnable((T216*)((C)->_else_compound/*12*/),a1);
  1424. /*[IF*/
  1425. if((_ec)==((void*)(NULL))){
  1426. }
  1427. else{
  1428. C->_else_compound=_ec;
  1429. }
  1430. /*FI]*/
  1431. }
  1432. /*FI]*/
  1433. /*[IF*/
  1434. if((_itl)!=((void*)(NULL))){
  1435. R=(T0*)C;
  1436. }
  1437. /*FI]*/
  1438. }
  1439. else{
  1440. R=r222twin(C);
  1441. /*[IRF3.3clear_current_type*/((((T222*)(((T222*)R))))->_current_type)=(NULL);
  1442. /*]*/
  1443. R=r222to_runnable(((T222*)R),a1);
  1444. }
  1445. /*FI]*/
  1446. return R;
  1447. }
  1448. /*No:IFTHENELSE.ifthenlist*/
  1449. /*No:IFTHENELSE.else_compound*/
  1450. /*No:IFTHENELSE.current_type*/
  1451. /*No:IFTHENELSE.fz_11*/
  1452. /*No:IFTHENELSE.is_pre_computable*/
  1453. /*No:IFTHENELSE.fz_12*/
  1454. /*No:IFTHENELSE.collect_c_tmp*/
  1455. /*No:IFTHENELSE.end_mark_comment*/
  1456. /*No:IFTHENELSE.make*/
  1457.  
  1458.  
  1459. void r222afd_check(T222* C){
  1460. r227afd_check((T227*)((C)->_ifthenlist/*8*/));
  1461. /*[IF*/
  1462. if(((C)->_else_compound/*12*/)!=((void*)(NULL))){
  1463. r216afd_check((T216*)((C)->_else_compound/*12*/));
  1464. }
  1465. /*FI]*/
  1466. }
  1467. /*No:IFTHENELSE.static_true*/
  1468.  
  1469.  
  1470. void r376c_assertion_flag(T376* C){
  1471. /*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms51_3077376)))))->_count)=(0);
  1472. /*]*/
  1473. r376c_frame_descriptor_name_in(C,((T0*)ms51_3077376));
  1474. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms51_30510));
  1475. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_3077376));
  1476. /*]*/
  1477. }
  1478. /*No:RUN_FEATURE_1.c_define*/
  1479. /*No:RUN_FEATURE_1.rescue_compound*/
  1480.  
  1481.  
  1482. void r376fall_down(T376* C){
  1483. T0* _rf=NULL;
  1484. T0* _sub_name=NULL;
  1485. T0* _sub_bc=NULL;
  1486. T0* _current_bc=NULL;
  1487. T0* _sub_rc=NULL;
  1488. T0* _current_rc=NULL;
  1489. T2 _i=0;
  1490. T0* _running=NULL;
  1491. _current_rc=X54run_class((C)->_current_type/*4*/);
  1492. _running=(((T24*)_current_rc))->_running/*12*/;
  1493. /*[IF*/
  1494. if((_running)!=((void*)(NULL))){
  1495. _current_bc=X54base_class((C)->_current_type/*4*/);
  1496. _i=(((T328*)_running))->_lower/*12*/;
  1497. while (!((_i)>((((T328*)_running))->_upper/*8*/))) {
  1498. _sub_rc=r328item(((T328*)_running),_i);
  1499. /*[IF*/
  1500. if((_sub_rc)!=((void*)(_current_rc))){
  1501. _sub_bc=X54base_class((((T24*)_sub_rc))->_current_type/*0*/);
  1502. _sub_name=r63new_name_of(((T63*)_sub_bc),_current_bc,(C)->_name/*16*/);
  1503. _rf=r24get_feature(((T24*)_sub_rc),_sub_name);
  1504. }
  1505. /*FI]*/
  1506. _i=(_i)+(1);
  1507. }
  1508. }
  1509. /*FI]*/
  1510. }
  1511. /*No:RUN_FEATURE_1.use_current_state*/
  1512. /*No:RUN_FEATURE_1.actuals_clients*/
  1513.  
  1514.  
  1515. void r376address_of_c_define(T376* C,T0* a1){
  1516. r21add_position(r160start_position(((T160*)a1)));
  1517. r21add_position(r376start_position(C));
  1518. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms376_106984);
  1519. r21fatal_error((T21*)(oBC12eh),b1);
  1520. }/*]*/
  1521. }
  1522. /*No:RUN_FEATURE_1.ucs_false*/
  1523.  
  1524.  
  1525. T6 r376is_static(T376* C){
  1526. T6 R=0;
  1527. R=X56is_static((C)->_value/*36*/);
  1528. return R;
  1529. }
  1530.  
  1531.  
  1532. T0* r376start_position(T376* C){
  1533. T0* R=NULL;
  1534. R=X200start_position((C)->_base_feature/*32*/);
  1535. return R;
  1536. }
  1537.  
  1538.  
  1539. T6 r376use_current(T376* C){
  1540. T6 R=0;
  1541. {int z1=(C)->_use_current_state/*28*/;
  1542.  
  1543. if((14==z1)){
  1544. R=1;
  1545. }
  1546.  else 
  1547. if((13==z1)){
  1548. }
  1549.  else 
  1550. if((15==z1)){
  1551. C->_use_current_state=16;
  1552. /*[IRF3.4compute_use_current*/r376std_compute_use_current(C);
  1553. /*]*/
  1554. R=r376use_current(C);
  1555. }
  1556.  else {R=1;
  1557. }}
  1558. return R;
  1559. }
  1560. /*No:RUN_FEATURE_1.c_code*/
  1561.  
  1562.  
  1563. T2 r376id(T376* C){
  1564. T2 R=0;
  1565. R=X54id((C)->_current_type/*4*/);
  1566. return R;
  1567. }
  1568. /*No:RUN_FEATURE_1.ucs_not_computed*/
  1569. /*No:RUN_FEATURE_1.is_pre_computable*/
  1570. /*No:RUN_FEATURE_1.collect_c_tmp*/
  1571.  
  1572.  
  1573. void r376std_compute_use_current(T376* C){
  1574. /*[IF*/
  1575. if(((C)->_use_current_state/*28*/)==(16)){
  1576. /*[IF*/
  1577. if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
  1578. /*[IF*/
  1579. if(r357use_current((T357*)((C)->_require_assertion/*20*/))){
  1580. C->_use_current_state=14;
  1581. }
  1582. /*FI]*/
  1583. }
  1584. /*FI]*/
  1585. }
  1586. /*FI]*/
  1587. /*[IF*/
  1588. if(((C)->_use_current_state/*28*/)==(16)){
  1589. /*[IF*/
  1590. /*AF*//*AE*/
  1591. /*FI]*/
  1592. }
  1593. /*FI]*/
  1594. /*[IF*/
  1595. if(((C)->_use_current_state/*28*/)==(16)){
  1596. /*[IF*/
  1597. /*AF*//*AE*/
  1598. /*FI]*/
  1599. }
  1600. /*FI]*/
  1601. /*[IF*/
  1602. if(((C)->_use_current_state/*28*/)==(16)){
  1603. /*[IF*/
  1604. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  1605. /*[IF*/
  1606. if(r215use_current((T215*)((C)->_ensure_assertion/*24*/))){
  1607. C->_use_current_state=14;
  1608. }
  1609. /*FI]*/
  1610. }
  1611. /*FI]*/
  1612. }
  1613. /*FI]*/
  1614. /*[IF*/
  1615. if(((C)->_use_current_state/*28*/)==(16)){
  1616. C->_use_current_state=13;
  1617. }
  1618. /*FI]*/
  1619. }
  1620.  
  1621.  
  1622. T0* r376run_class(T376* C){
  1623. T0* R=NULL;
  1624. R=X54run_class((C)->_current_type/*4*/);
  1625. return R;
  1626. }
  1627. /*No:RUN_FEATURE_1.result_type*/
  1628. /*No:RUN_FEATURE_1.base_feature*/
  1629.  
  1630.  
  1631. T2 r376static_value_mem(T376* C){
  1632. T2 R=0;
  1633. R=X56static_value((C)->_value/*36*/);
  1634. return R;
  1635. }
  1636. /*No:RUN_FEATURE_1.ensure_assertion*/
  1637.  
  1638.  
  1639. T2 r376arg_count(void){
  1640. T2 R=0;
  1641. /*[IF*/
  1642. /*AF*//*AE*/
  1643. /*FI]*/
  1644. return R;
  1645. }
  1646.  
  1647.  
  1648. T6 r376is_exported_in(T376* C,T0* a1){
  1649. T6 R=0;
  1650. R=r101gives_permission_to((T101*)(r376clients(C)),a1);
  1651. return R;
  1652. }
  1653. /*No:RUN_FEATURE_1.fz_close_c_comment*/
  1654. /*No:RUN_FEATURE_1.address_of_c_mapping*/
  1655. /*No:RUN_FEATURE_1.value*/
  1656. /*No:RUN_FEATURE_1.fatal_error*/
  1657. /*No:RUN_FEATURE_1.arguments*/
  1658.  
  1659.  
  1660. void r376mapping_c(T376* C){
  1661. T0* _real_constant=NULL;
  1662. /*[IF*/
  1663. if(X54is_double((C)->_result_type/*40*/)){
  1664. _real_constant=(C)->_value/*36*/;
  1665. if(NULL!=(_real_constant))switch(((T0*)_real_constant)->id) {
  1666. case 173: 
  1667. break;
  1668. default:
  1669. _real_constant=NULL;
  1670. };/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),(((T173*)_real_constant))->_to_string/*8*/);
  1671. /*]*/
  1672. }
  1673. else{
  1674. X56compile_to_c((C)->_value/*36*/);
  1675. }
  1676. /*FI]*/
  1677. }
  1678. /*No:RUN_FEATURE_1.can_be_dropped*/
  1679.  
  1680.  
  1681. void r376initialize(T376* C){
  1682. T2 _i=0;
  1683. C->_result_type=/*X200result_type*/((T0*)((T213*)((C)->_base_feature/*32*/))->_result_type/*20*/);
  1684. C->_result_type=X54to_runnable((C)->_result_type/*40*/,(C)->_current_type/*4*/);
  1685. _i=r85index_of((T85*)(/*X200names*/((T0*)((T213*)((C)->_base_feature/*32*/))->_names/*8*/)),(C)->_name/*16*/);
  1686. C->_value=X200value((C)->_base_feature/*32*/,_i);
  1687. C->_value=X56to_runnable((C)->_value/*36*/,(C)->_current_type/*4*/);
  1688. }
  1689. /*No:RUN_FEATURE_1.require_assertion*/
  1690. /*No:RUN_FEATURE_1.clients_memory*/
  1691. /*No:RUN_FEATURE_1.current_type*/
  1692.  
  1693.  
  1694. void r376nothing_comment(T376* C){
  1695. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_184a));
  1696. /*]*/
  1697. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_759));
  1698. /*]*/
  1699. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),X54run_time_mark((C)->_current_type/*4*/));
  1700. /*]*/
  1701. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1702. T3 b1='\56';
  1703. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1704. }/*]*/
  1705. /*]*/
  1706. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),X83to_string((C)->_name/*16*/));
  1707. /*]*/
  1708. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_184));
  1709. /*]*/
  1710. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1711. T3 b1='\n';
  1712. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1713. }/*]*/
  1714. /*]*/
  1715. }
  1716.  
  1717.  
  1718. void r376add_client(T376* C,T0* a1){
  1719. T2 _i=0;
  1720. /*[IF*/
  1721. if(((C)->_actuals_clients/*12*/)==((void*)(NULL))){
  1722. {T60*n=malloc(sizeof(*n));
  1723. *n=M60;
  1724. r60with_capacity(n,4);
  1725. C->_actuals_clients=(T0*)n;
  1726. }
  1727. r60add_last((T60*)((C)->_actuals_clients/*12*/),a1);
  1728. }
  1729. else{
  1730. _i=r60fast_index_of((T60*)((C)->_actuals_clients/*12*/),a1);
  1731. /*[IF*/
  1732. if((_i)>(((T60*)((C)->_actuals_clients/*12*/))->_upper/*8*/)){
  1733. r60add_last((T60*)((C)->_actuals_clients/*12*/),a1);
  1734. }
  1735. /*FI]*/
  1736. }
  1737. /*FI]*/
  1738. r24add_client((T24*)(r376run_class(C)),a1);
  1739. }
  1740. /*No:RUN_FEATURE_1.ucs_in_computation*/
  1741. /*No:RUN_FEATURE_1.compute_use_current*/
  1742.  
  1743.  
  1744. void r376make(T376* C,T0* a1,T0* a2,T0* a3){
  1745. C->_current_type=a1;
  1746. C->_name=a2;
  1747. C->_base_feature=a3;
  1748. /*[IRF3.5add_rf*/r325put(((T325*)(((T24*)(r376run_class(C)))->_feature_dictionary/*24*/)),(T0*)C,X83to_key(a2));
  1749. /*]*/
  1750. r22incr_magic_count((T22*)(oBC12small_eiffel));
  1751. C->_use_current_state=15;
  1752. r22push((T22*)(oBC12small_eiffel),(T0*)C);
  1753. r376initialize(C);
  1754. r22pop((T22*)(oBC12small_eiffel));
  1755. }
  1756. /*No:RUN_FEATURE_1.routine_body*/
  1757. /*No:RUN_FEATURE_1.ucs_true*/
  1758. /*No:RUN_FEATURE_1.name*/
  1759. /*No:RUN_FEATURE_1.local_vars*/
  1760. /*No:RUN_FEATURE_1.fz_open_c_comment*/
  1761. /*No:RUN_FEATURE_1.afd_check*/
  1762.  
  1763.  
  1764. T0* r376clients(T376* C){
  1765. T0* R=NULL;
  1766. T0* _bfbc=NULL;
  1767. T0* _bc=NULL;
  1768. /*[IF*/
  1769. if(((C)->_clients_memory/*8*/)==((void*)(NULL))){
  1770. _bc=X54base_class((C)->_current_type/*4*/);
  1771. _bfbc=/*X200base_class*/((T0*)((T213*)((C)->_base_feature/*32*/))->_base_class/*4*/);
  1772. /*[IF*/
  1773. if((_bc)==((void*)(_bfbc))){
  1774. R=/*X200clients*/((T0*)((T213*)((C)->_base_feature/*32*/))->_clients/*16*/);
  1775. }
  1776. else{
  1777. R=r63clients_for(((T63*)_bc),(C)->_name/*16*/);
  1778. }
  1779. /*FI]*/
  1780. C->_clients_memory=R;
  1781. }
  1782. else{
  1783. R=(C)->_clients_memory/*8*/;
  1784. }
  1785. /*FI]*/
  1786. return R;
  1787. }
  1788.  
  1789.  
  1790. void r376c_frame_descriptor_name_in(T376* C,T0* a1){
  1791. r7extend(((T7*)a1),'f');
  1792. r2append_in(r376id(C),a1);
  1793. X83mapping_c_in((C)->_name/*16*/,a1);
  1794. }
  1795. /*No:ONCE_FUNCTION.rescue_compound*/
  1796. /*No:ONCE_FUNCTION.use_current_state*/
  1797.  
  1798.  
  1799. T0* r306run_require(T0* a1){
  1800. T0* R=NULL;
  1801. T0* _ct=NULL;
  1802. T0* _ar=NULL;
  1803. T0* _hc=NULL;
  1804. T0* _er=NULL;
  1805. T0* _r=NULL;
  1806. T2 _i=0;
  1807. r358clear((T358*)(oBC93require_collector));
  1808. _ct=/*X51current_type*/((T0*)(((T324*)a1))->_current_type/*4*/);
  1809. r63collect_for((T63*)(X54base_class(_ct)),1,/*X51name*/((T0*)(((T324*)a1))->_name/*16*/));
  1810. /*[IF*/
  1811. if(!(r358empty((T358*)(oBC93require_collector)))){
  1812. _i=1;
  1813. while (!((_i)>(((T358*)(oBC93require_collector))->_upper/*8*/))) {
  1814. _er=r358item((T358*)(oBC93require_collector),_i);
  1815. _hc=(((T286*)_er))->_header_comment/*4*/;
  1816. /*[IF*/
  1817. if(!(/*(IRF4.7empty*/((((T286*)_er))->_list/*8*/)==(NULL)/*)*/)){
  1818. _r=r306runnable((((T286*)_er))->_list/*8*/,_ct,a1);
  1819. /*[IF*/
  1820. if((_r)!=((void*)(NULL))){
  1821. {T286*n=malloc(sizeof(*n));
  1822. *n=M286;
  1823. r286make_runnable(n,_r,_ct,a1);
  1824. _er=(T0*)n;
  1825. }
  1826. /*[IRF3.3set_header_comment*/((((T286*)(((T286*)_er))))->_header_comment)=(_hc);
  1827. /*]*/
  1828. /*[IF*/
  1829. if((_ar)==((void*)(NULL))){
  1830. _ar=se_ma358(1,
  1831. _er);
  1832. }
  1833. else{
  1834. r358add_last(((T358*)_ar),_er);
  1835. }
  1836. /*FI]*/
  1837. }
  1838. /*FI]*/
  1839. }
  1840. /*FI]*/
  1841. _i=(_i)+(1);
  1842. }
  1843. /*[IF*/
  1844. if((_ar)!=((void*)(NULL))){
  1845. {T357*n=malloc(sizeof(*n));
  1846. *n=M357;
  1847. /*[IRF3.3make*/((((T357*)(n)))->_list)=(_ar);
  1848. /*]*/
  1849. R=(T0*)n;
  1850. }
  1851. }
  1852. /*FI]*/
  1853. }
  1854. /*FI]*/
  1855. return R;
  1856. }
  1857. /*No:ONCE_FUNCTION.base_class*/
  1858. /*No:ONCE_FUNCTION.set_rescue_compound*/
  1859. /*No:ONCE_FUNCTION.base_class_name*/
  1860.  
  1861.  
  1862. T0* r306start_position(T306* C){
  1863. T0* R=NULL;
  1864. R=X83start_position(/*(IRF4.6first_name*/r85item(((T85*)((C)->_names/*8*/)),1)/*)*/);
  1865. return R;
  1866. }
  1867.  
  1868.  
  1869. T6 r306is_merge_with(T306* C,T0* a1,T0* a2){
  1870. T6 R=0;
  1871. R=1;
  1872. /*[IF*/
  1873. if(((C)->_result_type/*56*/)!=((void*)(X93result_type(a1)))){
  1874. /*[IF*/
  1875. if((((C)->_result_type/*56*/)==((void*)(NULL)))||((X93result_type(a1))==((void*)(NULL)))){
  1876. R=0;
  1877. }
  1878. /*FI]*/
  1879. }
  1880. /*FI]*/
  1881. /*[IF*/
  1882. if(((C)->_arguments/*24*/)!=((void*)(X93arguments(a1)))){
  1883. /*[IF*/
  1884. if((((C)->_arguments/*24*/)==((void*)(NULL)))||((X93arguments(a1))==((void*)(NULL)))){
  1885. R=0;
  1886. }
  1887.  else if((/*(IRF4.6count*/(((T191*)(((T187*)((C)->_arguments/*24*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T191*)(((T187*)(X93arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
  1888. R=0;
  1889. }
  1890. /*FI]*/
  1891. }
  1892. /*FI]*/
  1893. /*[IF*/
  1894. if(R){
  1895. /*[IF*/
  1896. if(((C)->_result_type/*56*/)!=((void*)(NULL))){
  1897. R=X54is_a_in((C)->_result_type/*56*/,X93result_type(a1),a2);
  1898. }
  1899. /*FI]*/
  1900. /*[IF*/
  1901. if((R)&&(((C)->_arguments/*24*/)!=((void*)(NULL)))){
  1902. R=r187is_a_in((T187*)((C)->_arguments/*24*/),X93arguments(a1),a2);
  1903. }
  1904. /*FI]*/
  1905. /*[IF*/
  1906. if(!(R)){
  1907. R=1;
  1908. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  1909. /*]*/
  1910. /*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
  1911. /*]*/
  1912. /*]*/
  1913. /*[IF*/
  1914. if(((C)->_result_type/*56*/)!=((void*)(NULL))){
  1915. R=X54is_a_in(X93result_type(a1),(C)->_result_type/*56*/,a2);
  1916. }
  1917. /*FI]*/
  1918. /*[IF*/
  1919. if((R)&&(((C)->_arguments/*24*/)!=((void*)(NULL)))){
  1920. R=r187is_a_in((T187*)(X93arguments(a1)),(C)->_arguments/*24*/,a2);
  1921. }
  1922. /*FI]*/
  1923. }
  1924. /*FI]*/
  1925. }
  1926. /*FI]*/
  1927. /*[IF*/
  1928. if(R){
  1929. r306merge_header_comments(C,a1);
  1930. }
  1931. /*FI]*/
  1932. return R;
  1933. }
  1934.  
  1935.  
  1936. T0* r306runnable(T0* a1,T0* a2,T0* a3){
  1937. T0* R=NULL;
  1938. T0* _a=NULL;
  1939. T2 _i=0;
  1940. /*[IF*/
  1941. if(!(r106empty(((T106*)a1)))){
  1942. R=r106twin(((T106*)a1));
  1943. _i=(((T106*)R))->_upper/*8*/;
  1944. while (!((_i)==(0))) {
  1945. r22push((T22*)(oBC12small_eiffel),a3);
  1946. _a=r103to_runnable((T103*)(r106item(((T106*)R),_i)),a2);
  1947. /*[IF*/
  1948. if((_a)==((void*)(NULL))){
  1949. r306error(r103start_position((T103*)(r106item(((T106*)R),_i))),((T0*)ms13_14266));
  1950. }
  1951. else{
  1952. /*[IRF3.6put*/{T106* C1=((T106*)R);
  1953. T0* b1=_a;
  1954. T2 b2=_i;
  1955. ((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
  1956. }/*]*/
  1957. }
  1958. /*FI]*/
  1959. r22pop((T22*)(oBC12small_eiffel));
  1960. _i=(_i)-(1);
  1961. }
  1962. }
  1963. /*FI]*/
  1964. return R;
  1965. }
  1966. /*No:ONCE_FUNCTION.not_computed*/
  1967. /*No:ONCE_FUNCTION.first_name*/
  1968. /*No:ONCE_FUNCTION.em1*/
  1969. /*No:ONCE_FUNCTION.header_comment*/
  1970. /*No:ONCE_FUNCTION.names*/
  1971.  
  1972.  
  1973. void r306mapping_c_name_in(T306* C,T0* a1){
  1974. r63mapping_c_in((T63*)((C)->_base_class/*4*/),a1);
  1975. r7append(((T7*)a1),X83to_key(/*(IRF4.6first_name*/r85item(((T85*)((C)->_names/*8*/)),1)/*)*/));
  1976. }
  1977. /*No:ONCE_FUNCTION.fz_03*/
  1978. /*No:ONCE_FUNCTION.result_type*/
  1979. /*No:ONCE_FUNCTION.code_require*/
  1980. /*No:ONCE_FUNCTION.make_e_feature*/
  1981.  
  1982.  
  1983. void r306add_into(T306* C,T0* a1){
  1984. T0* _fn=NULL;
  1985. T2 _i=0;
  1986. C->_base_class=r70base_class((T70*)(X83start_position(r85item((T85*)((C)->_names/*8*/),1))));
  1987. _i=1;
  1988. while (!((_i)>(r85count((T85*)((C)->_names/*8*/))))) {
  1989. _fn=r85item((T85*)((C)->_names/*8*/),_i);
  1990. /*[IF*/
  1991. if(r92has(((T92*)a1),X83to_key(_fn))){
  1992. _fn=/*X93first_name*/((T0*)/*(IRF4.6first_name*/r85item(((T85*)(((T199*)(r92at(((T92*)a1),X83to_key(_fn))))->_names/*8*/)),1)/*)*/);
  1993. r21add_position(X83start_position(_fn));
  1994. r21add_position(X83start_position(r85item((T85*)((C)->_names/*8*/),_i)));
  1995. r21error((T21*)(oBC12eh),((T0*)ms93_41905));
  1996. /*[IRF3.6append*/{T0* b1=X83to_string(_fn);
  1997. r7append((T7*)(oBC21explanation),b1);
  1998. }/*]*/
  1999. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  2000. }
  2001. else{
  2002. r92put(((T92*)a1),(T0*)C,X83to_key(_fn));
  2003. }
  2004. /*FI]*/
  2005. _i=(_i)+(1);
  2006. }
  2007. }
  2008.  
  2009.  
  2010. T6 r306can_hide(T306* C,T0* a1,T0* a2){
  2011. T6 R=0;
  2012. /*[IF*/
  2013. if(((C)->_result_type/*56*/)!=((void*)(X93result_type(a1)))){
  2014. /*[IF*/
  2015. if((((C)->_result_type/*56*/)==((void*)(NULL)))||((X93result_type(a1))==((void*)(NULL)))){
  2016. r21add_position(X93start_position(a1));
  2017. r306error(r306start_position(C),((T0*)ms93_64647));
  2018. }
  2019. /*FI]*/
  2020. }
  2021. /*FI]*/
  2022. /*[IF*/
  2023. if(((C)->_arguments/*24*/)!=((void*)(X93arguments(a1)))){
  2024. /*[IF*/
  2025. if((((C)->_arguments/*24*/)==((void*)(NULL)))||((X93arguments(a1))==((void*)(NULL)))){
  2026. r21add_position(X93start_position(a1));
  2027. r306error(r306start_position(C),((T0*)ms93_83182));
  2028. }
  2029.  else if((/*(IRF4.6count*/(((T191*)(((T187*)((C)->_arguments/*24*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T191*)(((T187*)(X93arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
  2030. r21add_position(X93start_position(a1));
  2031. r306error(r306start_position(C),((T0*)ms93_67155));
  2032. }
  2033. /*FI]*/
  2034. }
  2035. /*FI]*/
  2036. /*[IF*/
  2037. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  2038. /*[IF*/
  2039. if(((C)->_result_type/*56*/)!=((void*)(NULL))){
  2040. /*[IF*/
  2041. if(!(X54is_a_in((C)->_result_type/*56*/,X93result_type(a1),a2))){
  2042. /*[IRF3.6append*/{T0* b1=((T0*)ms93_54285);
  2043. r7append((T7*)(oBC21explanation),b1);
  2044. }/*]*/
  2045. /*[IRF3.6append*/{T0* b1=X54run_time_mark((((T24*)a2))->_current_type/*0*/);
  2046. r7append((T7*)(oBC21explanation),b1);
  2047. }/*]*/
  2048. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  2049. }
  2050. /*FI]*/
  2051. }
  2052. /*FI]*/
  2053. }
  2054. /*FI]*/
  2055. /*[IF*/
  2056. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  2057. /*[IF*/
  2058. if(((C)->_arguments/*24*/)!=((void*)(NULL))){
  2059. /*[IF*/
  2060. if(!(r187is_a_in((T187*)((C)->_arguments/*24*/),X93arguments(a1),a2))){
  2061. r21add_position(X93start_position(a1));
  2062. r21add_position(r306start_position(C));
  2063. /*[IRF3.6append*/{T0* b1=((T0*)ms93_54285);
  2064. r7append((T7*)(oBC21explanation),b1);
  2065. }/*]*/
  2066. /*[IRF3.6append*/{T0* b1=X54run_time_mark((((T24*)a2))->_current_type/*0*/);
  2067. r7append((T7*)(oBC21explanation),b1);
  2068. }/*]*/
  2069. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  2070. }
  2071. /*FI]*/
  2072. }
  2073. /*FI]*/
  2074. }
  2075. /*FI]*/
  2076. R=(/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0);
  2077. /*[IF*/
  2078. if(R){
  2079. r306merge_header_comments(C,a1);
  2080. }
  2081. /*FI]*/
  2082. return R;
  2083. }
  2084. /*No:ONCE_FUNCTION.ensure_assertion*/
  2085.  
  2086.  
  2087. T0* r306run_ensure(T0* a1){
  2088. T0* R=NULL;
  2089. T0* _ct=NULL;
  2090. T0* _r=NULL;
  2091. r106clear((T106*)(oBC93assertion_collector));
  2092. /*[IRF3.3clear*/{T0* _default_item=NULL;
  2093. ((((T371*)((T371*)(oBC93header_comment_memory))))->_item)=(_default_item);
  2094. }/*]*/
  2095. _ct=/*X51current_type*/((T0*)(((T324*)a1))->_current_type/*4*/);
  2096. r63collect_for((T63*)(X54base_class(_ct)),2,/*X51name*/((T0*)(((T324*)a1))->_name/*16*/));
  2097. _r=r306runnable(oBC93assertion_collector,_ct,a1);
  2098. /*[IF*/
  2099. if((_r)!=((void*)(NULL))){
  2100. {T215*n=malloc(sizeof(*n));
  2101. *n=M215;
  2102. r215make_runnable(n,_r,_ct,a1);
  2103. R=(T0*)n;
  2104. }
  2105. /*[IRF3.3set_header_comment*/((((T215*)(((T215*)R))))->_header_comment)=(((T371*)(oBC93header_comment_memory))->_item/*0*/);
  2106. /*]*/
  2107. /*[IRF3.3clear*/{T0* _default_item=NULL;
  2108. ((((T371*)((T371*)(oBC93header_comment_memory))))->_item)=(_default_item);
  2109. }/*]*/
  2110. }
  2111. /*FI]*/
  2112. return R;
  2113. }
  2114.  
  2115.  
  2116. void r306check_obsolete(T306* C){
  2117. /*[IF*/
  2118. if(!(((T22*)(oBC12small_eiffel))->_short_flag/*8*/)){
  2119. /*[IF*/
  2120. if(((C)->_obsolete_mark/*28*/)!=((void*)(NULL))){
  2121. /*[IRF3.6append*/{T0* b1=((T0*)ms214_39396);
  2122. r7append((T7*)(oBC21explanation),b1);
  2123. }/*]*/
  2124. /*[IRF3.6append*/{T0* b1=((T171*)((C)->_obsolete_mark/*28*/))->_to_string/*8*/;
  2125. r7append((T7*)(oBC21explanation),b1);
  2126. }/*]*/
  2127. r306warning(r306start_position(C),((T0*)ms13_166));
  2128. }
  2129. /*FI]*/
  2130. }
  2131. /*FI]*/
  2132. }
  2133.  
  2134.  
  2135. T0* r306try_to_undefine(T306* C,T0* a1,T0* a2){
  2136. T0* R=NULL;
  2137. T0* _fn2=NULL;
  2138. r21add_position(X83start_position(a1));
  2139. _fn2=r85feature_name((T85*)((C)->_names/*8*/),X83to_key(a1));
  2140. /*[IF*/
  2141. if((_fn2)!=((void*)(NULL))){
  2142. X83undefine_in(_fn2,a2);
  2143. }
  2144. /*FI]*/
  2145. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  2146. /*]*/
  2147. /*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
  2148. /*]*/
  2149. /*]*/
  2150. R=r306try_to_undefine_aux(C,a1,a2);
  2151. /*[IF*/
  2152. if((R)!=((void*)(NULL))){
  2153. /*X284set_clients*//*[IRF3.3set_clients*/((((T287*)(((T287*)R))))->_clients)=((C)->_clients/*20*/);
  2154. /*]*/
  2155. r306merge_header_comments(C,R);
  2156. }
  2157. else{
  2158. r63fatal_undefine(((T63*)a2),a1);
  2159. }
  2160. /*FI]*/
  2161. return R;
  2162. }
  2163. /*No:ONCE_FUNCTION.is_deferred*/
  2164. /*No:ONCE_FUNCTION.set_clients*/
  2165. /*No:ONCE_FUNCTION.code_ensure*/
  2166. /*No:ONCE_FUNCTION.nb_errors*/
  2167.  
  2168.  
  2169. void r306make_routine(T306* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  2170. /*[IRF3.3make_e_feature*/((((T306*)(C)))->_names)=(a1);
  2171. /*]*/
  2172. C->_header_comment=a4;
  2173. C->_arguments=a2;
  2174. C->_obsolete_mark=a3;
  2175. C->_require_assertion=a5;
  2176. }
  2177.  
  2178.  
  2179. T0* r306to_run_feature(T306* C,T0* a1,T0* a2){
  2180. T0* R=NULL;
  2181. r306check_obsolete(C);
  2182. {T50*n=malloc(sizeof(*n));
  2183. *n=M50;
  2184. r50make(n,a1,a2,(T0*)C);
  2185. R=(T0*)n;
  2186. }
  2187. return R;
  2188. }
  2189.  
  2190.  
  2191. void r306merge_header_comments(T306* C,T0* a1){
  2192. /*[IF*/
  2193. if(((T22*)(oBC12small_eiffel))->_short_flag/*8*/){
  2194. /*[IF*/
  2195. if(((C)->_header_comment/*12*/)==((void*)(NULL))){
  2196. C->_header_comment=/*X93header_comment*/((T0*)(((T199*)a1))->_header_comment/*12*/);
  2197. }
  2198.  else if((/*X93header_comment*/((T0*)(((T199*)a1))->_header_comment/*12*/))==((void*)(NULL))){
  2199. X93set_header_comment(a1,(C)->_header_comment/*12*/);
  2200. }
  2201. /*FI]*/
  2202. }
  2203. /*FI]*/
  2204. }
  2205. /*No:ONCE_FUNCTION.arguments*/
  2206. /*No:ONCE_FUNCTION.require_assertion*/
  2207.  
  2208.  
  2209. void r306make_effective_routine(T306* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
  2210. r306make_routine(C,a1,a2,a3,a4,a5);
  2211. C->_local_vars=a6;
  2212. C->_routine_body=a7;
  2213. C->_use_current_state=25;
  2214. }
  2215.  
  2216.  
  2217. void r306warning(T0* a1,T0* a2){
  2218. r21add_position(a1);
  2219. r21warning((T21*)(oBC12eh),a2);
  2220. }
  2221.  
  2222.  
  2223. T0* r306try_to_undefine_aux(T306* C,T0* a1,T0* a2){
  2224. T0* R=NULL;
  2225. {T287*n=malloc(sizeof(*n));
  2226. *n=M287;
  2227. r287from_effective(n,a1,(C)->_arguments/*24*/,(C)->_result_type/*56*/,(C)->_require_assertion/*32*/,(C)->_ensure_assertion/*36*/,a2);
  2228. R=(T0*)n;
  2229. }
  2230. return R;
  2231. }
  2232. /*No:ONCE_FUNCTION.set_ensure_assertion*/
  2233. /*No:ONCE_FUNCTION.fz_bad_assertion*/
  2234. /*No:ONCE_FUNCTION.fz_dot*/
  2235.  
  2236.  
  2237. T6 r306stupid_switch(T306* C,T0* a1,T0* a2){
  2238. T6 R=0;
  2239. R=((C)->_routine_body/*44*/)==((void*)(NULL));
  2240. return R;
  2241. }
  2242.  
  2243.  
  2244. void r306error(T0* a1,T0* a2){
  2245. r21add_position(a1);
  2246. r21error((T21*)(oBC12eh),a2);
  2247. }
  2248.  
  2249.  
  2250. void r306make(T306* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7,T0* a8){
  2251. r306make_effective_routine(C,a1,a2,a4,a5,a6,a7,a8);
  2252. C->_result_type=a3;
  2253. }
  2254. /*No:ONCE_FUNCTION.routine_body*/
  2255. /*No:ONCE_FUNCTION.end_comment*/
  2256.  
  2257.  
  2258. void r306collect_for(T306* C,T2 a1){
  2259. T0* _er=NULL;
  2260. /*[IF*/
  2261. if((a1)==(1)){
  2262. _er=(C)->_require_assertion/*32*/;
  2263. /*[IF*/
  2264. if((_er)!=((void*)(NULL))){
  2265. /*[IF*/
  2266. if(!(r358fast_has((T358*)(oBC93require_collector),_er))){
  2267. r358add_last((T358*)(oBC93require_collector),_er);
  2268. }
  2269. /*FI]*/
  2270. }
  2271. /*FI]*/
  2272. }
  2273. else{
  2274. /*[IF*/
  2275. if(((C)->_ensure_assertion/*36*/)!=((void*)(NULL))){
  2276. /*[IRF3.3set_item*/((((T371*)((T371*)(oBC93header_comment_memory))))->_item)=(((T215*)((C)->_ensure_assertion/*36*/))->_header_comment/*4*/);
  2277. /*]*/
  2278. r215add_into((T215*)((C)->_ensure_assertion/*36*/),oBC93assertion_collector);
  2279. }
  2280. /*FI]*/
  2281. }
  2282. /*FI]*/
  2283. }
  2284. /*No:ONCE_FUNCTION.local_vars*/
  2285.  
  2286.  
  2287. void r306set_header_comment(T306* C,T0* a1){
  2288. /*[IF*/
  2289. if(((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)>(1))){
  2290. C->_end_comment=a1;
  2291. }
  2292. /*FI]*/
  2293. }
  2294. /*No:ONCE_FUNCTION.clients*/
  2295. /*No:ONCE_FUNCTION.obsolete_mark*/
  2296.  
  2297.